
#ifndef BinaryTreeNode_
#define BinaryTreeNode_

template <class T> class BinaryTree;

template <class T>
class BinaryTreeNode {
    friend class BinaryTree<T>;

  public:
    BinaryTreeNode() { LeftChild = RightChild = 0; }
    BinaryTreeNode( const T& e )
        { data = e; LeftChild = RightChild = 0; }
    BinaryTreeNode( const T& e, BinaryTreeNode *l,
            BinaryTreeNode *r )
        { data = e; LeftChild = l; RightChild = r; }

  private:
    T data;
    BinaryTreeNode<T> *LeftChild,
            *RightChild;
};

#endif

